Dynamic Compilation in the Unix Environment
نویسنده
چکیده
A system for dynamic compilation under the Unix operating system is described. The basis of the system is an incremental assembler that can be used statically or during program execution to insert or replace a module in an executable image. All cross-module references are via offsets into a run-time symbol table. All generated code is independent of its location or the location of the symbol table. The symbol table and all modules reside in memory segments compatible with the memory allocator mallocO. The symbol table origin is maintained in a processor register. Library procedures allow the assembler (or C compiler) to be called to alter the currently executing program, or to place a stub function which acts as a trap, so that when the stub is invoked it causes a file to be dynamically compiled into the executing program to replace the stub with a bona fide procedure. This facilitates the construction of advanced interactive environments using native code. Some example applications, to Prolog and to incremental compilation, are considered.
منابع مشابه
Achieving Incremental Compilation Through Fine-Grained Builds
Traditional programming environments represent program source code as a set of source files. These files have various ‘dependencies’ on each other, such that a file needs recompilation if it depends on a file which has changed. A ‘build tool’ is used to process these dependencies and bring the application ‘up-to-date’. An example of a build tool is the UNIX ‘make’. This paper examines what happ...
متن کاملSPICE for Windows 95/98/NT
The analogue circuit simulator SPICE was originally developed at the University of California at Berkeley. It was has been constantly upgraded and maintained at Berkeley from 1972 to 1992, when the last official release 3f4 was published. The UNIX based source code is still available as freeware at ftp://ic.berkeley.edu/pub/Spice3/. Although the research at Berkeley has stopped, many commercial...
متن کاملThe Tools Have Arrived: Two-Command Compilation and Execution of Scalable, Multi-FPGA Applications
Continual increases in the computational resources of FieldProgrammable Gate Arrays (FPGAs) provide greater capabilities for algorithm migration to hardware to capitalize on higher performance at lower power. However, wider adoption of FPGA technologies is often assumed to be limited by development costs associated with lengthy toolflows dissimilar to traditional development of software applica...
متن کاملJust-In-Time compilation of OCaml byte-code
This paper presents various improvements that were applied to OCamlJit2, a Just-In-Time compiler for the OCaml byte-code virtual machine. OCamlJit2 currently runs on various Unix-like systems with x86 or x86-64 processors. The improvements, including the new x86 port, are described in detail, and performance measures are given, including a direct comparison of OCamlJit2 to OCamlJit.
متن کاملSafe and Flexible Dynamic Linking of Native Code
We present the design and implementation of the first complete framework for flexible and safe dynamic linking of native code. Our approach extends Typed Assembly Language with a primitive for loading and typechecking code, which is flexible enough to support a variety of linking strategies, but simple enough that it does not significantly expand the trusted computing base. Using this primitive...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Softw., Pract. Exper.
دوره 17 شماره
صفحات -
تاریخ انتشار 1987